﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MotionPlanning.MotionPlanningAlgorithms;
using MotionPlanning.MotionPlanningPrimitives;

namespace MotionPlanning.MotionPlanningComponents.Visualizations
{
    public interface VisualizationComponent
    {
        void set_cost_cutoff_high(double value);
        void set_cost_cutoff_low(double value);
        void PlotVerticesWithCost(List<object> train);
        void PlotVerticesWithDuration(List<object> train, long T_near, long T_far);
        void PlotEdges(List<object> train);
        void PlotEdges(List<Edge> train);
        void PlotVertices(List<object> train);
        void PlotTrajectory(Trajectory trajectory);
        void SetHostPlanner(Planner_RRTBased host);
        void VisualizeState(double[] q_vis);
        void ClearCanvas();
        void RenderFrame();
    }
}
